package itsm.isperp.module.repository.app;

import itsm.isperp.framework.data.mybatis.dao.CUDMapper;
import itsm.isperp.module.entity.app.AppSequence;

import java.util.Date;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 系统流水号映射器
 * 
 * @author lizx
 * @date 2013-2-17
 * @version V1.0
 */
@Repository
public interface AppSequenceMapper extends CUDMapper<AppSequence> {

	/**
	 * 根据类型代码查询
	 * 
	 * @param tableName
	 *            表名称
	 * @return 系统流水号实体
	 */
	public AppSequence findByTableName(@Param("tableName") String tableName);

	/**
	 * 返回一个新的序列号的顺序号
	 * 
	 * @param tableName
	 *            表名称
	 * @return 序列号的顺序号
	 */
	public long nextNumber(@Param("tableName") String tableName);

	/**
	 * 自增长某表的序列号
	 * 
	 * @param tableName
	 *            表名称
	 */
	public void incrementSeqNumber(@Param("tableName") String tableName,
			@Param("updateDate") Date updateDate);

	/**
	 * update某表的序列号
	 * 
	 * @param tableName
	 *            表名称
	 */
	public void updateSeqNumber(@Param("tableName") String tableName,
			@Param("updateDate") Date updateDate,
			@Param("seqNumber") long seqNumber);

}
